home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 676-700 / 681 / term / source.lha / UploadPanel.c < prev    next >
C/C++ Source or Header  |  1992-05-09  |  4KB  |  158 lines

  1. /*
  2. **    $Id: UploadPanel.c,v 1.5 92/04/21 16:58:20 olsen Sta Locker: olsen $
  3. **    $Revision: 1.5 $
  4. **    $Date: 92/04/21 16:58:20 $
  5. **
  6. **    ZModem auto-upload control panel support routines
  7. **
  8. **    Copyright © 1990-1992 by Olaf `Olsen' Barthel & MXM
  9. **        All Rights Reserved
  10. */
  11.  
  12. #include "termGlobal.h"
  13.  
  14. #define WIDTH    236
  15. #define HEIGHT    67
  16.  
  17. STATIC struct Gadget *
  18. CreateAllGadgets(struct Gadget **GadgetArray,struct Gadget **GadgetList,APTR VisualInfo,UWORD TopEdge)
  19. {
  20.     struct Gadget        *Gadget;
  21.     struct NewGadget     NewGadget;
  22.     UWORD             Counter = 0;
  23.  
  24.     memset(&NewGadget,0,sizeof(struct NewGadget));
  25.  
  26.     if(Gadget = CreateContext(GadgetList))
  27.     {
  28.         NewGadget . ng_Width        = 216;
  29.         NewGadget . ng_Height        = 12;
  30.         NewGadget . ng_GadgetText    = NULL;
  31.         NewGadget . ng_TextAttr        = &DefaultFont;
  32.         NewGadget . ng_VisualInfo    = VisualInfo;
  33.         NewGadget . ng_GadgetID        = Counter;
  34.         NewGadget . ng_Flags        = 0;
  35.         NewGadget . ng_LeftEdge        = 10;
  36.         NewGadget . ng_TopEdge        = 1 + TopEdge;
  37.  
  38.         GadgetArray[Counter++] = Gadget = CreateGadget(TEXT_KIND,Gadget,&NewGadget,
  39.             GTTX_Text,        LocaleString(MSG_UPLOADPANEL_SELECT_ZMODEM_UPLOAD_TYPE_GAD),
  40.             GTTX_Border,        TRUE,
  41.         TAG_DONE);
  42.  
  43.         NewGadget . ng_GadgetText    = LocaleString(MSG_UPLOADPANEL_TEXT_UPLOAD_GAD);
  44.         NewGadget . ng_GadgetID        = Counter;
  45.         NewGadget . ng_TopEdge        = NewGadget . ng_TopEdge + NewGadget . ng_Height + 1;
  46.  
  47.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  48.             GT_Underscore,    '_',
  49.         TAG_DONE);
  50.  
  51.         NewGadget . ng_GadgetText    = LocaleString(MSG_UPLOADPANEL_BINARY_UPLOAD_GAD);
  52.         NewGadget . ng_GadgetID        = Counter;
  53.         NewGadget . ng_TopEdge        = NewGadget . ng_TopEdge + NewGadget . ng_Height + 1;
  54.  
  55.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  56.             GT_Underscore,    '_',
  57.         TAG_DONE);
  58.  
  59.         NewGadget . ng_Width        = 88;
  60.         NewGadget . ng_Height        = 12;
  61.         NewGadget . ng_GadgetText    = LocaleString(MSG_UPLOADPANEL_IGNORE_GAD);
  62.         NewGadget . ng_GadgetID        = Counter;
  63.         NewGadget . ng_Flags        = 0;
  64.         NewGadget . ng_LeftEdge        = 10;
  65.         NewGadget . ng_TopEdge        = HEIGHT - 3 - NewGadget . ng_Height;
  66.  
  67.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  68.             GT_Underscore,    '_',
  69.         TAG_DONE);
  70.  
  71.         NewGadget . ng_GadgetText    = LocaleString(MSG_GLOBAL_ABORT_GAD);
  72.         NewGadget . ng_GadgetID        = Counter;
  73.         NewGadget . ng_LeftEdge        = WIDTH - 10 - NewGadget . ng_Width;
  74.  
  75.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  76.             GT_Underscore,    '_',
  77.         TAG_DONE);
  78.     }
  79.  
  80.     return(Gadget);
  81. }
  82.  
  83. BYTE
  84. UploadPanel()
  85. {
  86.     struct Window    *PanelWindow;
  87.     struct Gadget    *GadgetList = NULL;
  88.     struct Gadget    *GadgetArray[5];
  89.     BYTE         Selection;
  90.  
  91.     if(CreateAllGadgets(&GadgetArray[0],&GadgetList,VisualInfo,Screen -> WBorTop + Screen -> Font -> ta_YSize + 1))
  92.     {
  93.         if(PanelWindow = OpenWindowTags(NULL,
  94.             WA_Left,    (Screen -> Width - WIDTH) >> 1,
  95.             WA_Top,        (Screen -> Height - HEIGHT) >> 1,
  96.             WA_Width,    WIDTH,
  97.             WA_Height,    HEIGHT,
  98.  
  99.             WA_Activate,    TRUE,
  100.             WA_DragBar,    TRUE,
  101.             WA_DepthGadget,    TRUE,
  102.             WA_RMBTrap,    TRUE,
  103.             WA_DepthGadget,    TRUE,
  104.             WA_CustomScreen,Screen,
  105.  
  106.             WA_IDCMP,    IDCMP_VANILLAKEY | BUTTONIDCMP,
  107.  
  108.             WA_Title,    LocaleString(MSG_UPLOADPANEL_UPLOAD_TYPE_TXT),
  109.         TAG_DONE))
  110.         {
  111.             struct IntuiMessage    *Massage;
  112.             ULONG             Class,Code;
  113.             struct Gadget        *Gadget;
  114.             BYTE             Terminated = FALSE;
  115.  
  116.             PushWindow(PanelWindow);
  117.  
  118.             AddGList(PanelWindow,GadgetList,(UWORD)-1,(UWORD)-1,NULL);
  119.             RefreshGList(GadgetList,PanelWindow,NULL,(UWORD)-1);
  120.             GT_RefreshWindow(PanelWindow,NULL);
  121.  
  122.             while(!Terminated)
  123.             {
  124.                 WaitPort(PanelWindow -> UserPort);
  125.  
  126.                 while(!Terminated && (Massage = (struct IntuiMessage *)GT_GetIMsg(PanelWindow -> UserPort)))
  127.                 {
  128.                     Class    = Massage -> Class;
  129.                     Code    = Massage -> Code;
  130.                     Gadget    = (struct Gadget *)Massage -> IAddress;
  131.  
  132.                     GT_ReplyIMsg(Massage);
  133.  
  134.                     if(Class == IDCMP_VANILLAKEY)
  135.                         KeySelect(GadgetArray,4,Code,PanelWindow,&Gadget,&Class,&Code);
  136.  
  137.                     if(Class == IDCMP_GADGETUP)
  138.                     {
  139.                         Selection = Gadget -> GadgetID;
  140.  
  141.                         Terminated = TRUE;
  142.                     }
  143.                 }
  144.             }
  145.  
  146.             RemoveGList(PanelWindow,GadgetList,(UWORD)-1);
  147.  
  148.             PopWindow();
  149.  
  150.             CloseWindow(PanelWindow);
  151.         }
  152.     }
  153.  
  154.     FreeGadgets(GadgetList);
  155.  
  156.     return(Selection);
  157. }
  158.